/**
 * 名字标签挂件：全空白
 * 
 * 注意: 因为是挂件, 所以没有 sendStatus 这个方法.
 * 该挂件的 Pendant 实例需要调用 sendStatus 方法, 因此需要上层设置 sendStatus 方法
 */

/**
 * public 创建 Pendant 挂件方法
 * 
 * 注: 上层的 Scene 会注入 finished 方法.
 */
function createPendant(context) {
  let intervalHandler = 0;

  return new context.Pendant({
    require : [],

    /**
     * duration: <number>, 毫秒, 这个是 动画中间阶段 的时间，所有时间加起来是 duration + 1000
     */
    props : {
      duration : 5000
    },

    init (libs, args) {
      Object.assign(this, args);

      if (typeof(this.props.duration) !== 'number') {
        this.props.duration = 5000;
      } else if (this.props.duration < 1000) {
        this.props.duration = 1000;
      }
  
      intervalHandler = setTimeout(() => this.finished(), this.props.duration);
    },
  
    destroy() {
      clearTimeout(intervalHandler);
    }
  });
};

// 对外开放哪些方法
export default createPendant;
